
02 Dec 08 SHL

This kernel debug data was extracted after Roderick requested and S3 suspect
on his T61.

The basic setup is

  acpi29112008.zip
  APIC enabled
  /VBE

The suspend was requested from a full-screen session using apm2.exe.


Opening COM1
Attempting to set port to 38400,N,8,1,xon=on(normal)
Communications port opened and configured.

Sending break ... please wait
eax=00000000 ebx=f9af6c18 ecx=8001003b edx=00000000 esi=f9400054 edi=f9af6cc0
eip=fff09cfc esp=00004f80 ebp=00004f80 iopl=0 -- -- -- nv up ei pl zr na pe nc
cs=0178 ss=1530 ds=0170 es=0170 fs=0000 gs=0000 cr2=02f30000 cr3=00225000 p=00
0178:fff09cfc 66ff0df60c80ff dec       word ptr [_PollCount (ff800cf6)]
                                                               ds:ff800cf6=5421
##ln
0178:fff09c33 os2krnl:DOSHIGH32CODE:sch20a + c9
0178:fff09dd9 sch20b - dd

This is just to verify the debug connection.

##g

The suspend was requested here.  It never completed, so we Ctrl-C'ed
to get the kernels attention.

Sending break ... please wait
The kernel is running ... try ^C or Ctrl/Break
Could not break into kernel debugger

The above messages are bogus.  The kernel is just slow to respond in its
current state.

IPI: IPIResponse timeout from processor number 0
IPI: IPIInProgress timeout from processor number 0

Pasha, is this the spin lock problems you are working on?

Sending break ... please wait
The kernel is running ... try ^C or Ctrl/Break
Could not break into kernel debugger

##

We finally get the kernel's attention.

##r
eax=ffffffff ebx=fd388504 ecx=fd3884bc edx=00000004 esi=fd3884bc edi=f9400000
eip=fff0f5c6 esp=00004eb0 ebp=00004f60 iopl=0 -- -- -- nv up di ng nz na pe nc
cs=0178 ss=1530 ds=0170 es=0170 fs=0000 gs=0000 cr2=00890000 cr3=00eb0000 p=01s
os2krnl:DOSHIGH32CODE:MPSpinLoop:
0178:fff0f5c6 803b00         cmp       byte ptr [ebx],00         ds:fd388504=01

We are stuck in MPSpinLoop

##k
0178:fff134be fd388504 00000000 00000000 00000206 _CPUSpin + 72
0178:fff39208 00000001 fff8efc0 00000000 00000000 _MPDaemon + 67
##.p#
 Slot  Pid  Ppid Csid Ord  Sta Pri  pTSD     pPTDA    pTCB     Disp SG Name
*0003# 0001 0000 0000 0003 run 081f f9002000 ffde9898 f9adf324 0f34 00 *mpd
##

Analyzing Call Gate ...
*** Not in a call ***

##r
eax=ffffffff ebx=fd388504 ecx=fd3884bc edx=00000004 esi=fd3884bc edi=f9400000
eip=fff0f5c6 esp=00004eb0 ebp=00004f60 iopl=0 -- -- -- nv up di ng nz na pe nc
cs=0178 ss=1530 ds=0170 es=0170 fs=0000 gs=0000 cr2=00890000 cr3=00eb0000 p=01s
os2krnl:DOSHIGH32CODE:MPSpinLoop:
0178:fff0f5c6 803b00         cmp       byte ptr [ebx],00         ds:fd388504=01
##u MPSpinLoop

##db Header
0b00:0000a6ae 0d 0a 49 6e 74 65 72 6e-61 6c 20 72 65 76 69 73 ..Internal revis
0b00:0000a6be 69 6f 6e 20 31 34 2e 31-30 34 61 5f 53 4d 50 00 ion 14.104a_SMP.
0b00:0000a6ce 24 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 $...............

Find return from MPSpin

##u
0178:fff0f658 59             pop       ecx
0178:fff0f659 5b             pop       ebx
0178:fff0f65a 8b8568ffffff   mov       eax,dword ptr [ebp+ffffff68]
0178:fff0f660 8b956cffffff   mov       edx,dword ptr [ebp+ffffff6c]
0178:fff0f666 c9             leave
0178:fff0f667 c20c00         retd      000c

Let's see it the spin ever finishes


##bp %fff0f667
##g

Nope...

Sending break ... please wait
The kernel is running ... try ^C or Ctrl/Break
Could not break into kernel debugger

##r
eax=ffffffff ebx=fd388504 ecx=fd3884bc edx=00000004 esi=fd3884bc edi=f9400000
eip=fff0f5c6 esp=00004eb0 ebp=00004f60 iopl=0 -- -- -- nv up di ng nz na pe nc
cs=0178 ss=1530 ds=0170 es=0170 fs=0000 gs=0000 cr2=00890000 cr3=00eb0000 p=01s
os2krnl:DOSHIGH32CODE:MPSpinLoop:
0178:fff0f5c6 803b00         cmp       byte ptr [ebx],00         ds:fd388504=01

#p
IPI: IPIInProgress timeout from processor number 0
IPI: IPIInProgress timeout from processor number 0
IPI: IPIInProgress timeout from processor number 0
IPI: IPIInProgress timeout from processor number 0
IPI: IPIInProgress timeout from processor number 0
IPI: IPIInProgress timeout from processor number 0

The p command was a bad idea.  We rebooted.

